#!/usr/bin/env python
# _*_coding:utf-8 _*_
# @Time    :2020/4/2 19:36
# @Author  :Abner Wong
# @Software: PyCharm

from .textPro import Text
from . import utils

from collections import Counter


class TextRank(Text):

    def __init__(self,
                 text=None, windows=2,
                 use_property=True, no_stopwords=True,
                 pr_config={'alpha': 0.85, 'max_iter': 100}):
        super(TextRank, self).__init__(text, use_property, no_stopwords)

        self.pr_config = pr_config
        self.windows = windows
        self.word_index, self.index_word, self.word_num = utils.words_info(self.words_pro)
        self.sorted_words = self._score_items(is_word=True)
        self.sorted_sents = self._score_items(is_word=False)

    def _build_adjacency_matrix(self, is_word=True):

        if is_word:
            adj_matrix = utils.word_adj_matrix(self.words_pro,
                                               self.windows,
                                               self.word_num,
                                               self.word_index)
        else:
            adj_matrix = utils.sent_adj_matrix(self.words_pro)

        return adj_matrix

    def _score_items(self, is_word=True):
        if is_word:
            adj_matrix = self._build_adjacency_matrix(is_word=is_word)
            scores = utils.cal_score(adj_matrix, **self.pr_config)
            sorted_items = utils.get_sorted_items(scores, self.index_word)
        else:
            adj_matrix = self._build_adjacency_matrix(is_word=is_word)
            scores = utils.cal_score(adj_matrix, **self.pr_config)
            index_sent = dict(zip(range(len(self.sents)), self.sents))
            sorted_items = utils.get_sorted_items(scores, index_sent)

        return sorted_items

    def get_n_keywords(self, N):
        return self.sorted_words[:N]

    def get_n_sentences(self, N):
        return self.sorted_sents[:N]

if __name__ == '__main__':
    content = '''
    文旅融合背景下只有河南·戏剧幻城游客体验感调查分析--基于网络游记
摘要:
引言：
关键词:文旅融合 网络游记 戏剧 创新 沉浸式体验
一．文旅融合背景概述
（1）文旅融合的内容
“文旅融合”的实质是文化中的旅游性与旅游中的文化性的统一，是文化对旅游价值链的渗透和辐射，使旅游产业价值链延伸。主要通过开发如节庆活动、演艺和体验类旅游活动，通过市场手段让游客参与其中体验非物质文化遗产。 对非物质文化遗产进行体验型开发主要是对民间舞蹈、民间音乐和民俗宗教活动等进行开发，形成综合性的旅游体验类活动。文旅融合的主要表现形式分为体验型文旅融合，活化型文旅融合，保护型文旅融合，创意型文旅融合，重组型文旅融合，延伸型文旅融合等。
（2）文旅融合的发展过程与现状
  从历史沿革的角度来看，文旅融合发展其实很早就有，不是一个崭新的命题，自从有了旅游，就有文旅融合，例如景区层面的主题文化包装、文化活动和节庆等，再如红色旅游，这其实都是文旅融合。2018年3月13日，国务院机构改革方案提出，将整合文化部和国家旅游局的职责，设立文化旅游部，作为国务院组成部门，文化部和国家旅游局不再保留。从此文旅融合这个命题就得到了加倍的关注。2019年，首届全国文化旅游局长会议在北京召开。旅游行业关心的是如何推广文旅融合，会议提出了“尊重规律、因地制宜、稳中求进、鼓励创新”四点建议。
去年，受新冠肺炎疫情影响，我国国内旅游人数和旅游收入有所下降。今年，随着我国疫情防控形势持续向好，市场强势升温。2020年末，纳入统计范围的全国各类文化和旅游单位34.16万个，比上年末减少0.63万个。其中，各级文化和旅游部门所属单位66555个，减少221个;从业人员69.98万人，增加0.46万人。我国文旅产业加速融合、保持较快增长。2019年，全年国内旅游人数60.06亿人次，同比增长8.4%。体现各地特色的历史文化街区、博物馆等人文景点对游客的吸引力不断增加。端午假期，全国国内旅游出游8913.6万人次，按可比口径恢复至疫前同期的98.7%。从文旅企业的投资以及项目开发状况来看，根据观点指数不完全统计，截至2021年5月31日 ，2021年国内文旅项目总投资宗数249宗，涉及金额共计9609.55亿元，与2020年同期的低迷时期相比，均实现了数倍的增长。
文旅融合在只有河南·戏剧幻城上的运用情况
12月11日-12日，由中国旅游研究院（文化和旅游部数据中心）和中国旅游协会等联合主办的“2021中国旅游集团化发展论坛”以线下线上相结合的方式在北京、上海等地同步召开。今年开业的全新文化作品——只有河南·戏剧幻城与北京环球影城、上海迪士尼乐园等景区共同入选“2021文旅融合创新项目”。这颗冉冉升起的文旅新星正用其独特的魅力为河南文旅增光添彩。
只有河南·戏剧幻城在题材选择上直抵黄河文明内核。面对黄河流域生态保护和高质量发展上升为国家战略的重大历史机遇，戏剧围绕“黄河、土地、粮食、传承”的主线，以讲述黄河故事、传承黄河文化为基调，打造具有世界影响力的文化旅游创新精品项目。只有河南·戏剧幻城在其建筑上采用方形院落，有中国天圆地方之意，强烈表达了地域性文化。黄土满眼，城外麦田也是对地域性表达的重要要素，在其内容上，只有河南·戏剧幻城将中原文化还原成一个个鲜活的生命，展现在游客眼前。不只是视觉感官，更在于文化与地域景观的强关联。是自然的，也是浓缩凝练的，贴合游客心理。
二．只有河南·戏剧幻城景区概述
（1）只有河南·戏剧幻城概况
只有河南·戏剧幻城由建业集团联袂王潮歌导演共同打造，是王潮歌导演继“印象”“又见”之后打造的全新文化作品——“只有系列”的扛鼎之作。总占地622亩，项目核心区是一座单边长328米、高15米的幻城。幻城内拥有21个大大小小的剧场、总时长近700分钟的剧目、近千名演员，是中国规模最大、演出时长最长的戏剧聚落群。也是王潮歌所有作品中第一个由民营企业全额投资的项目。这座投资近60亿的“戏剧幻城”，是建业集团“讲好黄河故事”的实际行动和文化自觉。是国内第一次将高雅，严肃的戏剧艺术形式作为作为“被消费主体”，是文化旅游“目的地作品”。将传统的观光旅游，用戏剧的方式转化成了带有共鸣性的体验式旅游。
只有河南·戏剧幻城开发历程
   2016年11月20日上午，“只有”主题演艺落户郑州国际文化创意产业园签约仪式暨艺术论坛在郑州举行。王潮歌导演第三代“只有”系列将从郑州发端，河南省委常委、郑州市委书记马懿，副省长张广智，著名导演王潮歌，建业集团董事长胡葆森，著名作家李佩甫、郑彦英、孙荪，以及河南省、郑州市、中牟县相关部门负责人等出席签约仪式。2018年三月到2020年三月历时两年项目核心区所有建筑封顶。2020年9月1日，建业集团《只有河南·戏剧幻城》项目总导演王潮歌记者见面会在郑州举行，人民日报、央广网、河南日报、大象新闻等多家媒体对其进行了专访。2020年10月15日，王潮歌导演团队正式进场，开展剧目合成排练，景观广场百亩麦田播种。2020年11月13日，只有河南微信公众号创立，发刊文《我不是一个河南人》阅读量破26万。2021年2月1日，只有河南”最新海报出炉。这是知名设计师黄海老师第一次，为一个省做海报。三张概念海报的主题分别是“御行天下”、“天地生长”、“歌赋中华”。2021年5月13日，只有河南作品发布会举行，开城时间公布。2021年 6月5日，开城首演举行，全国各地2000余位企业家、政府领导、文化名人、建业集团合作方伙伴、媒体嘉宾等共同见证。方风雷、王石，著名作家、刘震云、秦朔，陈泽民等大咖齐聚幻城；2021年 6月6日，麦熟开镰，只有河南正式开城纳客。
（3）只有河南·戏剧幻城发展现状
自今年6月6日开业以来，在经历了暴雨、疫情两次闭园共68天的情况下，只有河南·戏剧幻城到10月底已累计接待观众45万人次，观剧人次近220万。据统计，只有河南·戏剧幻城客群范围辐射全国，近三分之一游客，为观剧专程来河南，可以说，只有河南·戏剧幻已经成为了解河南文化，感受中原文明新的旅游目的地。《只有河南·戏剧幻城》拥有员工1400余人，直接带动就业8000余人，预计成熟期年纳税额将达1亿元。
   文化和旅游的融合创新是新时代推动文化产业高质量发展和旅游产业优质升级的重大现实需要。只有河南·戏剧幻城入选“2021文旅融合创新项目”本次入选案例和项目还将被收入《中国旅游集团化发展报告2021》《中国旅游评论》《中国文化和旅游大数据》和《中国旅游经济蓝皮书2022》等中国旅游研究院“1+8+X”等标志性学术成果体系。
基于网络游记的游客体验感分析
基于网络游记的调查
本研究对已经到访只有河南·戏剧幻城的游客为研究对象，以马蜂窝，携程网，飞猪，大众点评，小红书，知乎 等主流网站为数据来源，对游客游记进行分析。根据各个网络平台用户基数的大小和影响力程度，本次将携程网，马蜂窝两个主流旅游网站作为主要获取游记的网站。因只有河南·戏剧幻城是今年6月份刚开城的景区，又经历洪灾闭园。疫情闭园等，所以数据来源有一定的局限性，为了保证游记的准确性，客观性。本次调查对检索到的游记进行了筛选。首先去除有广告嫌疑的游记，以保证客观性。其次，排除掉只插入大量图片，对景区无地名景区描述的游记。最后，排除掉游记中大部分内容不是针对景点描述，而是其他旅游目的地的游记。本次研究最终选取了32篇游记进行详细分析。
游客体验感总结分析
32篇游记中有21篇游记明确标明了自己的旅游出发地，可以看出幻城的客源市场目前主要为河南省和周围省份。32篇游记中18篇提到了交通方式大多以高铁，自驾为主。分析发现，32篇游记中多次出现的高频词为“沉浸式体验”“时光穿越”“感染力”“记忆”“迷宫”“文化”“拍照”“好玩”。对出现的高频词汇进行总结归纳发现游客主要关注点为幻城建筑与戏剧文化。
游客的情感为影响游客体验感的重要因素之一，旅游者情感的分析也可以帮助景区提升形象。通过游记发现，积极的情感占65%，中性情感占15%，消极情感占20%。积极情感是指对幻城评价乐观的评价如一定要去，太值了，非常震撼，景色很好等表达。而消极的则是人太多了，表演无趣，哗众取宠等负面评价。由此可见，游客对幻城评价以积极为主，为数不多的消极评价，问题集中在人多上面。
研究结论延伸与建议
（1）结论
通过对网络游记内容的分析可以有效的将游客对幻城的体验感进行表征。总体情况表述，沉浸式体验是幻城区别于其他同类文旅融合景区最显著的特征，游客能够从表演中了解中原文化。但对其环境，旅游服务评价较少，部分游客表示想要一天看完时间不够，两日全票不能网上预订，只能现场购买。如此一来，便给游客造成许多不便。另外，游客数量太多排队时间太长，转场不便，观看表演家长小孩吵闹无工作人员劝说维持秩序，夜场结束后，附近偏僻交通不便打不到车等情况，这些情况严重影响部分游客的体验感。
（2）建议
通过网络游记中游客反映的问题，提出以下建议：（1）一部分游记中反应观看表演现场吵闹，无工作人员维持秩序的情况，基层员工直接面对游客，他们的态度和服务质量直接影响游客体验。管理人员应加强对基层人员的约束与管理，进行定期培训与考核。同时可以实行尽力制度激发员工潜能，使员工自主提升自身专业素质。（2）在旅游配套设施方面，加强对交通工具方面的建设，可针对夜游游客设置班车解决游客交通不便问题。（3）增强资源保护意识，加强对生态环境的保护，保护优先，走可持续发展道路。
    '''
    bot = TextRank(content)
    print(bot.get_n_keywords(20))
